package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.ByCodeMsg;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 短信随机验证码Mapper接口
 *
 * @author ruoyi
 * @date 2023-05-16
 */
public interface ByCodeMsgMapper
{


    @Select("select * from by_code_msg where TIMESTAMPDIFF(MINUTE,addtime,now()) <= 30 and code = #{code} and mobile = #{mobile}")
    List<ByCodeMsg> queryByCodeAndMobile(@Param("mobile") String mobile,@Param("code") String code);

    /**
     * 获取短信发送时间差
     * @param mobile
     * @return
     */
    @Select("SELECT TIMESTAMPDIFF(SECOND,addtime, now()) time FROM `by_code_msg` where mobile = #{mobile} ORDER BY addtime DESC LIMIT 1")
    String getNowSendTime(@Param("mobile") String mobile);

    /**
     * 查询短信随机验证码
     *
     * @param id 短信随机验证码主键
     * @return 短信随机验证码
     */
    public ByCodeMsg selectByCodeMsgById(Long id);

    /**
     * 查询短信随机验证码列表
     *
     * @param byCodeMsg 短信随机验证码
     * @return 短信随机验证码集合
     */
    public List<ByCodeMsg> selectByCodeMsgList(ByCodeMsg byCodeMsg);

    /**
     * 新增短信随机验证码
     *
     * @param byCodeMsg 短信随机验证码
     * @return 结果
     */
    public int insertByCodeMsg(ByCodeMsg byCodeMsg);

    /**
     * 修改短信随机验证码
     *
     * @param byCodeMsg 短信随机验证码
     * @return 结果
     */
    public int updateByCodeMsg(ByCodeMsg byCodeMsg);

    /**
     * 删除短信随机验证码
     *
     * @param id 短信随机验证码主键
     * @return 结果
     */
    public int deleteByCodeMsgById(Long id);

    /**
     * 批量删除短信随机验证码
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteByCodeMsgByIds(Long[] ids);
}
